Natural language understanding and voice commands are increasingly used in conjunction with mobile devices to provide end users with a seamless hands free user experience. Many mobile devices use intelligent assistants to interact with end users and permit the end user to accomplish tasks with their mobile devices without manually inputting information. For example, an intelligent assistant can receive a voice input such as “Call Home” and interpret that input as a command to call a particular phone number. Similarly, intelligent assistants can interpret a voice input such as “What is the Weather” as a request to go online and determine the temperature and other weather characteristics at a particular location. In this example, the intelligent assistant may go even further and determine the location of the mobile device on which it is executing before obtaining weather related information.
Some tasks carried out by intelligent assistants include: searching the web, e-mailing, messaging, and placing phone calls. Intelligent assistants can accomplish these tasks and interact with the end user in variety of ways, such as through voice commands, gestures, or textual input. In addition, intelligent assistants can receive speech input from the user, and take actions in response to the speech. Determining what actions to take in response to input can be based upon a meaning or understanding ascribed to input by a natural language understanding system. Intelligent assistants can also provide feedback if a command is not understood, or instruct the user with regards to operating the computing device.
While current intelligent assistants can perform rudimentary tasks, few can perform complex functions such as joining an end user to a meeting after being given the verbal command “Join my Meeting.” In order to respond to such a complex request, an intelligent assistant must use speech recognition, natural language understanding and contextual ontologies to carry out a complex set of actions. Thus there is a need for an intelligent assistant that can assist an end user by performing more complex actions.